#ifndef MENU_H_
#define MENU_H_
#include "Inventory.h"
#define OPTION_INIT_VAL 1 // used to initialize first value in option's enum
class Menu {
private:

	Inventory m_inventoty; // inventory to manage

	enum Options { ADD_ITEM = OPTION_INIT_VAL,
		ORDER_STOCK,
		RECEIVE_ORDER,
		SELL_ITEM,
		PRINT_SALES_DOC,
		EXIT_PROGRAM
	}; // used to jump to relevant code in order to handle user's option

	/***************************************************************************************
	* function name: Menu(const Menu& menuToCopy)
	* The Input: Menu object to be copied
	* The output: None
	* The Function operation: Empty implementation since a menu should not be copied
	***************************************************************************************/
	Menu(const Menu& menuToCopy) { }

public:
	/***************************************************************************************
	* function name: Menu()
	* The Input: None
	* The output: None
	* The Function operation: Empty implementation since object's member is not dynamically
	* 						  allocated
	***************************************************************************************/
	Menu() { }

	/***************************************************************************************
	* function name: ~Menu()
	* The Input: None
	* The output: None
	* The Function operation: Empty implementation since object's member is not dynamically
	* 						  allocated
	***************************************************************************************/
	~Menu() { }

	/***************************************************************************************
	* function name: void start() throw(bad_alloc)
	* The Input: None
	* The output: None
	* The Function operation: Asks for user's options and performs them (if possible):
	* 						  1. Add new item to inventory
	* 						  2. Order stock
	* 						  3. Receive order
	* 						  4. Sell item
	* 						  5. Print sales documentation
	* 						  6. Exit program
	***************************************************************************************/
	void start() throw(bad_alloc); // TODO DEBUG!!!
};


#endif
